@mixin flip($duration: $global-duration, $function: $global-function, $delay: $global-delay, $count: $global-count, $fill: $global-fill, $visibility: $global-visibility) {
	@include transform-style(preserve-3d);
	@include animation(flip $duration $function $delay $count $fill);
	@include visibility($visibility);

	@at-root {
		@include keyframes(flip) {
			0% {
				@include transform(perspective(400px) rotateY(0));
				animation-timing-function: ease-out;
			}
			40% {
				@include transform(perspective(400px) translateZ(150px) rotateY(170deg));
				animation-timing-function: ease-out;
			}
			50% {
				@include transform(perspective(400px) translateZ(150px) rotateY(190deg) scale(1));
				animation-timing-function: ease-in;
			}
			80% {
				@include transform(perspective(400px) rotateY(360deg) scale(.95));
				animation-timing-function: ease-in;
			}
			100% {
				@include transform(perspective(400px) scale(1));
				animation-timing-function: ease-in;
			}
		}
	}
}